import axios from 'axios'
import qs from 'qs'
import { getToken, removeUserInfo } from '.';
import { showToast } from 'vant';
import router from '@/router'
// 配置默认配置
axios.defaults.baseURL = import.meta.env.VITE_BASE_URL
axios.defaults.timeout = 8000

axios.interceptors.request.use(function (config) {
  if (getToken()) {
    // 判断请求方式
    if (config.method === 'get') {
      config.params= {
        ...config.params,
        token: getToken()
      }
    }
    if (config.method === 'post') {
      config.data= {
        ...config.data,
        token: getToken()
      }
    }
  }
  if (config.method === 'post' && config.data) {
    config.data = qs.stringify(config.data)
  }
  return config;
}, function (error) {

  return Promise.reject(error);
});


axios.interceptors.response.use(function (res) {
  if (res.data.code === 2000) {
    // 弹出错误提示 清除用户相关缓存 并到登录页
    removeUserInfo();
    showToast({
      type: 'fail',
      message: '用户未登录或登录过期',
      onClose: ()=> {
        router.replace('/login')
      }
    })
  }
  return res;
}, function (error) {
  return Promise.reject(error);
})

export default axios